<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		
		<title>DataTables - Reference</title>
		
		<link rel="shortcut icon" type="image/ico" href="favicon.ico">
		<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.datatables.net/rss.xml">		
		
		<script type="text/javascript" src="complete.min.js"></script>
		<script type="text/javascript" src="jquery.datatables.min.js"></script>
		<script type="text/javascript">
			var aData = [{"type":"function","parameter":"$","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Perform a jQuery selector action on the table's TR elements (from the tbody) and\nreturn the resulting jQuery object.<\/p><\/div><\/div>","purpose":"<p>Perform a jQuery selector action on the table's TR elements (from the tbody) and\nreturn the resulting jQuery object.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n\n     \/\/ Highlight every second row\n     oTable.$('tr:odd').css('backgroundColor', 'blue');\n   } );\n\n \n   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n\n     \/\/ Filter to rows with 'Webkit' in them, add a background colour and then\n     \/\/ remove the filter, thus highlighting the 'Webkit' rows only.\n     oTable.fnFilter('Webkit');\n     oTable.$('tr', {\"filter\": \"applied\"}).css('backgroundColor', 'blue');\n     oTable.fnFilter('');\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>|<i class=\"doc_param\">node<\/i>|<i class=\"doc_param\">jQuery<\/i>}: jQuery selector or node collection to act on<\/li><li>{<i class=\"doc_param\">object<\/i>}: Optional parameters for modifying the rows to be included<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">none<\/span>]: Select TR elements that meet the current filter\n   criterion (\"applied\") or all TR elements (i.e. no filter).<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">current<\/span>]: Order of the TR elements in the processed array.\n   Can be either 'current', whereby the current sorting of the table is used, or\n   'original' whereby the original order the data was read into the table is used.<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">all<\/span>]: Limit the selection to the currently displayed page\n   (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be \n   'current' and filter is 'applied', regardless of what they might be given as.<\/li><\/ol>","returns":"{<i class=\"doc_param\">object<\/i>}: jQuery object, filtered by the given selector.","group":"API"},{"type":"function","parameter":"_","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Almost identical to $ in operation, but in this case returns the data for the matched\r\nrows - as such, the jQuery selector used should ma...<\/div><\/div>","purpose":"<p>Almost identical to $ in operation, but in this case returns the data for the matched\r\nrows - as such, the jQuery selector used should match TR row nodes or TD\/TH cell nodes\r\nrather than any descendants, so the data can be obtained for the row\/cell. If matching\r\nrows are found, the data returned is the original data array\/object that was used to create the row (or a generated array if from a DOM source).<\/p>\r\n\r\n<p>This method is often useful in-combination with $ where both functions are given the\r\nsame parameters and the array indexes will match identically.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n\n     \/\/ Get the data from the first row in the table\n     var data = oTable._('tr:first');\n\n     \/\/ Do something useful with the data\n     alert( \"First cell is: \"+data[0] );\n   } );\n\n \n   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n\n     \/\/ Filter to 'Webkit' and get all data for \n     oTable.fnFilter('Webkit');\n     var data = oTable._('tr', {\"filter\": \"applied\"});\n     \n     \/\/ Do something with the data\n     alert( data.length+\" rows matched the filter\" );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>|<i class=\"doc_param\">node<\/i>|<i class=\"doc_param\">jQuery<\/i>}: jQuery selector or node collection to act on<\/li><li>{<i class=\"doc_param\">object<\/i>}: Optional parameters for modifying the rows to be included<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">none<\/span>]: Select elements that meet the current filter\n   criterion (\"applied\") or all elements (i.e. no filter).<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">current<\/span>]: Order of the data in the processed array.\n   Can be either 'current', whereby the current sorting of the table is used, or\n   'original' whereby the original order the data was read into the table is used.<\/li><li>{<i class=\"doc_param\">string<\/i>} [default=<span class=\"doc_default\">all<\/span>]: Limit the selection to the currently displayed page\n   (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be \n   'current' and filter is 'applied', regardless of what they might be given as.<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>}: Data for the matched elements. If any elements, as a result of the\n   selector, were not TR, TD or TH elements in the DataTable, they will have a null \n   entry in the array.","group":"API"},{"type":"function","parameter":"fnAddData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Add a single new row or multiple rows of data to the table. Please note\nthat this is suitable for client-side processing only - if you ar...<\/div><\/div>","purpose":"<p>Add a single new row or multiple rows of data to the table. Please note\nthat this is suitable for client-side processing only - if you are using \nserver-side processing (i.e. \"bServerSide\": true), then to add data, you\nmust add it to the data source, i.e. the server-side, through an Ajax call.<\/p>","default":"","param_type":"function","code":"   \/\/ Global var for counter\n   var giCount = 2;\n   \n   $(document).ready(function() {\n     $('#example').dataTable();\n   } );\n   \n   function fnClickAddRow() {\n     $('#example').dataTable().fnAddData( [\n       giCount+\".1\",\n       giCount+\".2\",\n       giCount+\".3\",\n       giCount+\".4\" ]\n     );\n       \n     giCount++;\n   }","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">array<\/i>|<i class=\"doc_param\">object<\/i>}: The data to be added to the table. This can be:\n   <ul>\n     <li>1D array of data - add a single row with the data provided<\/li>\n     <li>2D array of arrays - add multiple rows in a single call<\/li>\n     <li>object - data object when using <i>mData<\/i><\/li>\n     <li>array of objects - multiple data objects when using <i>mData<\/i><\/li>\n   <\/ul><\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: redraw the table or not<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>}: An array of integers, representing the list of indexes in \n   <i>aoData<\/i> ({@link DataTable.models.oSettings}) that have been added to \n   the table.","group":"API"},{"type":"function","parameter":"fnAdjustColumnSizing","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function will make DataTables recalculate the column sizes, based on the data \ncontained in the table and the sizes applied to the c...<\/div><\/div>","purpose":"<p>This function will make DataTables recalculate the column sizes, based on the data \ncontained in the table and the sizes applied to the columns (in the DOM, CSS or \nthrough the sWidth parameter). This can be useful when the width of the table's \nparent element changes (for example a window resize).<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable( {\n       \"sScrollY\": \"200px\",\n       \"bPaginate\": false\n     } );\n     \n     $(window).bind('resize', function () {\n       oTable.fnAdjustColumnSizing();\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">boolean<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Redraw the table or not, you will typically want to<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnClearTable","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Quickly and simply clear a table<\/p><\/div><\/div>","purpose":"<p>Quickly and simply clear a table<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...)\n     oTable.fnClearTable();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: redraw the table or not<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnClose","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The exact opposite of 'opening' a row, this function will close any rows which \nare currently 'open'.<\/p><\/div><\/div>","purpose":"<p>The exact opposite of 'opening' a row, this function will close any rows which \nare currently 'open'.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable;\n     \n     \/\/ 'open' an information row when a row is clicked on\n     $('#example tbody tr').click( function () {\n       if ( oTable.fnIsOpen(this) ) {\n         oTable.fnClose( this );\n       } else {\n         oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n       }\n     } );\n     \n     oTable = $('#example').dataTable();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: the table row to 'close'<\/li><\/ol>","returns":"{<i class=\"doc_param\">int<\/i>}: 0 on success, or 1 if failed (can't find the row)","group":"API"},{"type":"function","parameter":"fnDeleteRow","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Remove a row for the table<\/p><\/div><\/div>","purpose":"<p>Remove a row for the table<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Immediately remove the first row\n     oTable.fnDeleteRow( 0 );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">mixed<\/i>}: The index of the row from aoData to be deleted, or\n   the TR element you want to delete<\/li><li>{<i class=\"doc_param\">function<\/i>|<i class=\"doc_param\">null<\/i>}: Callback function<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Redraw the table or not<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>}: The row that was deleted","group":"API"},{"type":"function","parameter":"fnDestroy","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Restore the table to it's original state in the DOM by removing all of DataTables \nenhancements, alterations to the DOM structure of the ...<\/div><\/div>","purpose":"<p>Restore the table to it's original state in the DOM by removing all of DataTables \nenhancements, alterations to the DOM structure of the table and event listeners.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     \/\/ This example is fairly pointless in reality, but shows how fnDestroy can be used\n     var oTable = $('#example').dataTable();\n     oTable.fnDestroy();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">boolean<\/i>} [default=<span class=\"doc_default\">false<\/span>]: Completely remove the table from the DOM<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnDraw","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Redraw the table<\/p><\/div><\/div>","purpose":"<p>Redraw the table<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Re-draw the table - you wouldn't want to do it here, but it's an example :-)\n     oTable.fnDraw();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Re-filter and resort (if enabled) the table before the draw.<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnFilter","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Filter the input based on data<\/p><\/div><\/div>","purpose":"<p>Filter the input based on data<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Sometime later - filter...\n     oTable.fnFilter( 'test string' );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: String to filter the table on<\/li><li>{<i class=\"doc_param\">int<\/i>|<i class=\"doc_param\">null<\/i>}: Column to limit filtering to<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">false<\/span>]: Treat as regular expression or not<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Perform smart filtering or not<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Show the input global filter in it's input box(es) - please note that this option will not operate with DataTables 1.10+ as it has been removed from the latest versions.<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Do case-insensitive matching (true) or not (false)<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnGetData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Get the data for the whole table, an individual row or an individual cell based on the \nprovided parameters.<\/p><\/div><\/div>","purpose":"<p>Get the data for the whole table, an individual row or an individual cell based on the \nprovided parameters.<\/p>","default":"","param_type":"function","code":"   \/\/ Row data\n   $(document).ready(function() {\n     oTable = $('#example').dataTable();\n\n     oTable.$('tr').click( function () {\n       var data = oTable.fnGetData( this );\n       \/\/ ... do something with the array \/ object of data for the row\n     } );\n   } );\n\n \n   \/\/ Individual cell data\n   $(document).ready(function() {\n     oTable = $('#example').dataTable();\n\n     oTable.$('td').click( function () {\n       var sData = oTable.fnGetData( this );\n       alert( 'The cell clicked on had the value of '+sData );\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">int<\/i>|<i class=\"doc_param\">node<\/i>}: A TR row node, TD\/TH cell node or an integer. If given as\n   a TR node then the data source for the whole row will be returned. If given as a\n   TD\/TH cell node then iCol will be automatically calculated and the data for the\n   cell returned. If given as an integer, then this is treated as the aoData internal\n   data index for the row (see fnGetPosition) and the data for that row used.<\/li><li>{<i class=\"doc_param\">int<\/i>}: Optional column index that you want the data of.<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>|<i class=\"doc_param\">object<\/i>|<i class=\"doc_param\">string<\/i>}: If mRow is undefined, then the data for all rows is\n   returned. If mRow is defined, just data for that row, and is iCol is\n   defined, only data for the designated cell is returned.","group":"API"},{"type":"function","parameter":"fnGetNodes","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Get an array of the TR nodes that are used in the table's body. Note that you will \ntypically want to use the '$' API method in preferenc...<\/div><\/div>","purpose":"<p>Get an array of the TR nodes that are used in the table's body. Note that you will \ntypically want to use the '$' API method in preference to this as it is more \nflexible.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Get the nodes from the table\n     var nNodes = oTable.fnGetNodes( );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">int<\/i>}: Optional row index for the TR element you want<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>|<i class=\"doc_param\">node<\/i>}: If iRow is undefined, returns an array of all TR elements\n   in the table's body, or iRow is defined, just the TR element requested.","group":"API"},{"type":"function","parameter":"fnGetPosition","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Get the array indexes of a particular cell from it's DOM element\nand column index including hidden columns<\/p><\/div><\/div>","purpose":"<p>Get the array indexes of a particular cell from it's DOM element\nand column index including hidden columns<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     $('#example tbody td').click( function () {\n       \/\/ Get the position of the current data from the node\n       var aPos = oTable.fnGetPosition( this );\n       \n       \/\/ Get the data array for this row\n       var aData = oTable.fnGetData( aPos[0] );\n       \n       \/\/ Update the data array and return the value\n       aData[ aPos[1] ] = 'clicked';\n       this.innerHTML = 'clicked';\n     } );\n     \n     \/\/ Init DataTables\n     oTable = $('#example').dataTable();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: this can either be a TR, TD or TH in the table's body<\/li><\/ol>","returns":"{<i class=\"doc_param\">int<\/i>}: If nNode is given as a TR, then a single index is returned, or\n   if given as a cell, an array of [row index, column index (visible), \n   column index (all)] is given.","group":"API"},{"type":"function","parameter":"fnIsOpen","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Check to see if a row is 'open' or not.<\/p><\/div><\/div>","purpose":"<p>Check to see if a row is 'open' or not.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable;\n     \n     \/\/ 'open' an information row when a row is clicked on\n     $('#example tbody tr').click( function () {\n       if ( oTable.fnIsOpen(this) ) {\n         oTable.fnClose( this );\n       } else {\n         oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n       }\n     } );\n     \n     oTable = $('#example').dataTable();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: the table row to check<\/li><\/ol>","returns":"{<i class=\"doc_param\">boolean<\/i>}: true if the row is currently open, false otherwise","group":"API"},{"type":"function","parameter":"fnOpen","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function will place a new row directly after a row which is currently \non display on the page, with the HTML contents that is passed...<\/div><\/div>","purpose":"<p>This function will place a new row directly after a row which is currently \non display on the page, with the HTML contents that is passed into the \nfunction. This can be used, for example, to ask for confirmation that a \nparticular record should be deleted.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable;\n     \n     \/\/ 'open' an information row when a row is clicked on\n     $('#example tbody tr').click( function () {\n       if ( oTable.fnIsOpen(this) ) {\n         oTable.fnClose( this );\n       } else {\n         oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n       }\n     } );\n     \n     oTable = $('#example').dataTable();\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: The table row to 'open'<\/li><li>{<i class=\"doc_param\">string<\/i>|<i class=\"doc_param\">node<\/i>|<i class=\"doc_param\">jQuery<\/i>}: The HTML to put into the row<\/li><li>{<i class=\"doc_param\">string<\/i>}: Class to give the new TD cell<\/li><\/ol>","returns":"{<i class=\"doc_param\">node<\/i>}: The row opened. Note that if the table row passed in as the\n   first parameter, is not found in the table, this method will silently\n   return.","group":"API"},{"type":"function","parameter":"fnPageChange","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Change the pagination - provides the internal logic for pagination in a simple API \nfunction. With this function you can have a DataTable...<\/div><\/div>","purpose":"<p>Change the pagination - provides the internal logic for pagination in a simple API \nfunction. With this function you can have a DataTables table go to the next, \nprevious, first or last pages.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     oTable.fnPageChange( 'next' );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>|<i class=\"doc_param\">int<\/i>}: Paging action to take: \"first\", \"previous\", \"next\" or \"last\"\n   or page number to jump to (integer), note that page 0 is the first page.<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Redraw the table or not<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnSetColumnVis","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Show a particular column<\/p><\/div><\/div>","purpose":"<p>Show a particular column<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Hide the second column after initialisation\n     oTable.fnSetColumnVis( 1, false );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">int<\/i>}: The column whose display should be changed<\/li><li>{<i class=\"doc_param\">bool<\/i>}: Show (true) or hide (false) the column<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Redraw the table or not<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnSettings","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Get the settings for a particular table for external manipulation<\/p><\/div><\/div>","purpose":"<p>Get the settings for a particular table for external manipulation<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     var oSettings = oTable.fnSettings();\n     \n     \/\/ Show an example parameter from the settings\n     alert( oSettings._iDisplayStart );\n   } );","inputs":"","returns":"{<i class=\"doc_param\">object<\/i>}: DataTables settings object. See \n   {@link DataTable.models.oSettings}","group":"API"},{"type":"function","parameter":"fnSort","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Sort the table by a particular column<\/p><\/div><\/div>","purpose":"<p>Sort the table by a particular column<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Sort immediately with columns 0 and 1\n     oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">int<\/i>}: the data index to sort on. Note that this will not match the \n   'display index' if you have hidden data entries<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnSortListener","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Attach a sort listener to an element for a given column<\/p><\/div><\/div>","purpose":"<p>Attach a sort listener to an element for a given column<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     \n     \/\/ Sort on column 1, when 'sorter' is clicked on\n     oTable.fnSortListener( document.getElementById('sorter'), 1 );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: the element to attach the sort listener to<\/li><li>{<i class=\"doc_param\">int<\/i>}: the column that a click on this node will sort on<\/li><li>{<i class=\"doc_param\">function<\/i>}: callback function when sort is run<\/li><\/ol>","returns":"","group":"API"},{"type":"function","parameter":"fnUpdate","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Update a table cell or row - this method will accept either a single value to update the cell with, an array of values with one element f...<\/div><\/div>","purpose":"<p>Update a table cell or row - this method will accept either a single value to update the cell with, an array of values with one element for each column or\r\nan object in the same format as the original data source. The function is\r\nself-referencing in order to make the multi column updates easier.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\r\n     var oTable = $('#example').dataTable();\r\n     oTable.fnUpdate( 'Example update', 0, 0 ); \/\/ Single cell\r\n     oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], 1 ); \/\/ Row\r\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>|<i class=\"doc_param\">array<\/i>|<i class=\"doc_param\">string<\/i>}: Data to update the cell\/row with<\/li><li>{<i class=\"doc_param\">node<\/i>|<i class=\"doc_param\">int<\/i>}: TR element you want to update or the aoData index<\/li><li>{<i class=\"doc_param\">int<\/i>}: The column to update (set to undefined to update the whole row)<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Redraw the table or not<\/li><li>{<i class=\"doc_param\">bool<\/i>} [default=<span class=\"doc_default\">true<\/span>]: Perform pre-draw actions or not<\/li><\/ol>","returns":"{<i class=\"doc_param\">int<\/i>}: 0 on success, 1 on error","group":"API"},{"type":"function","parameter":"fnVersionCheck","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Provide a common method for plug-ins to check the version of DataTables being used, in order\nto ensure compatibility.<\/p><\/div><\/div>","purpose":"<p>Provide a common method for plug-ins to check the version of DataTables being used, in order\nto ensure compatibility.<\/p>","default":"","param_type":"function","code":"   $(document).ready(function() {\n     var oTable = $('#example').dataTable();\n     alert( oTable.fnVersionCheck( '1.9.0' ) );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: Version string to check for, in the format \"X.Y.Z\". Note that the\n   formats \"X\" and \"X.Y\" are also acceptable.<\/li><\/ol>","returns":"{<i class=\"doc_param\">boolean<\/i>}: true if this version of DataTables is greater or equal to the required\n   version, or false if this version of DataTales is not suitable","group":"API"},{"type":"function","parameter":"fnVersionCheck","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Provide a common method for plug-ins to check the version of DataTables being used, in order\nto ensure compatibility.<\/p><\/div><\/div>","purpose":"<p>Provide a common method for plug-ins to check the version of DataTables being used, in order\nto ensure compatibility.<\/p>","default":"","param_type":"function","code":"   alert( $.fn.dataTable.fnVersionCheck( '1.9.0' ) );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: Version string to check for, in the format \"X.Y.Z\". Note that the\n   formats \"X\" and \"X.Y\" are also acceptable.<\/li><\/ol>","returns":"{<i class=\"doc_param\">boolean<\/i>}: true if this version of DataTables is greater or equal to the required\n   version, or false if this version of DataTales is not suitable","group":"API-Static"},{"type":"function","parameter":"fnIsDataTable","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Check if a TABLE node is a DataTable table already or not.<\/p><\/div><\/div>","purpose":"<p>Check if a TABLE node is a DataTable table already or not.<\/p>","default":"","param_type":"function","code":"   var ex = document.getElementById('example');\n   if ( ! $.fn.DataTable.fnIsDataTable( ex ) ) {\n     $(ex).dataTable();\n   }","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: The TABLE node to check if it is a DataTable or not (note that other\n   node types can be passed in, but will always return false).<\/li><\/ol>","returns":"{<i class=\"doc_param\">boolean<\/i>}: true the table given is a DataTable, or false otherwise","group":"API-Static"},{"type":"function","parameter":"fnTables","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Get all DataTable tables that have been initialised - optionally you can select to\nget only currently visible tables.<\/p><\/div><\/div>","purpose":"<p>Get all DataTable tables that have been initialised - optionally you can select to\nget only currently visible tables.<\/p>","default":"","param_type":"function","code":"   var table = $.fn.dataTable.fnTables(true);\n   if ( table.length > 0 ) {\n     $(table).dataTable().fnAdjustColumnSizing();\n   }","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">boolean<\/i>} [default=<span class=\"doc_default\">false<\/span>]: Flag to indicate if you want all (default) or \n   visible tables only.<\/li><\/ol>","returns":"{<i class=\"doc_param\">array<\/i>}: Array of TABLE nodes (not DataTable instances) which are DataTables","group":"API-Static"},{"type":"array","parameter":"aaData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>An array of data to use for the table, passed in at initialisation which \nwill be used in preference to any data which is already in the ...<\/div><\/div>","purpose":"<p>An array of data to use for the table, passed in at initialisation which \nwill be used in preference to any data which is already in the DOM. This is\nparticularly useful for constructing tables purely in Javascript, for\nexample with a custom Ajax call.<\/p>","default":"null","param_type":"array","code":"   \/\/ Using a 2D array data source\n   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"aaData\": [\n         ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'],\n         ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'],\n       ],\n       \"aoColumns\": [\n         { \"sTitle\": \"Engine\" },\n         { \"sTitle\": \"Browser\" },\n         { \"sTitle\": \"Platform\" },\n         { \"sTitle\": \"Version\" },\n         { \"sTitle\": \"Grade\" }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using an array of objects as a data source (mData)\n   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"aaData\": [\n         {\n           \"engine\":   \"Trident\",\n           \"browser\":  \"Internet Explorer 4.0\",\n           \"platform\": \"Win 95+\",\n           \"version\":  4,\n           \"grade\":    \"X\"\n         },\n         {\n           \"engine\":   \"Trident\",\n           \"browser\":  \"Internet Explorer 5.0\",\n           \"platform\": \"Win 95+\",\n           \"version\":  5,\n           \"grade\":    \"C\"\n         }\n       ],\n       \"aoColumns\": [\n         { \"sTitle\": \"Engine\",   \"mData\": \"engine\" },\n         { \"sTitle\": \"Browser\",  \"mData\": \"browser\" },\n         { \"sTitle\": \"Platform\", \"mData\": \"platform\" },\n         { \"sTitle\": \"Version\",  \"mData\": \"version\" },\n         { \"sTitle\": \"Grade\",    \"mData\": \"grade\" }\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Option"},{"type":"array","parameter":"aaSorting","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>If sorting is enabled, then DataTables will perform a first pass sort on \ninitialisation. You can define which column(s) the sort is perf...<\/div><\/div>","purpose":"<p>If sorting is enabled, then DataTables will perform a first pass sort on \ninitialisation. You can define which column(s) the sort is performed upon, \nand the sorting direction, with this variable. The aaSorting array should \ncontain an array for each column to be sorted initially containing the \ncolumn's index and a direction string ('asc' or 'desc').<\/p>","default":"[[0,'asc']]","param_type":"array","code":"   \/\/ Sort by 3rd column first, and then 4th column\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aaSorting\": [[2,'asc'], [3,'desc']]\n     } );\n   } );\n   \n   \/\/ No initial sorting\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aaSorting\": []\n     } );\n   } );","inputs":"","returns":"","group":"Option"},{"type":"array","parameter":"aaSortingFixed","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter is basically identical to the aaSorting parameter, but \ncannot be overridden by user interaction with the table. What this...<\/div><\/div>","purpose":"<p>This parameter is basically identical to the aaSorting parameter, but \ncannot be overridden by user interaction with the table. What this means \nis that you could have a column (visible or hidden) which the sorting will \nalways be forced on first - any sorting after that (from the user) will \nthen be performed as required. This can be useful for grouping rows \ntogether.<\/p>","default":"null","param_type":"array","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aaSortingFixed\": [[0,'asc']]\n     } );\n   } )","inputs":"","returns":"","group":"Option"},{"type":"array","parameter":"aLengthMenu","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter allows you to readily specify the entries in the length drop\ndown menu that DataTables shows when pagination is enabled. I...<\/div><\/div>","purpose":"<p>This parameter allows you to readily specify the entries in the length drop\ndown menu that DataTables shows when pagination is enabled. It can be \neither a 1D array of options which will be used for both the displayed \noption and the value, or a 2D array which will use the array in the first \nposition as the value, and the array in the second position as the \ndisplayed options (useful for language strings such as 'All').<\/p>","default":"[ 10, 25, 50, 100 ]","param_type":"array","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aLengthMenu\": [[10, 25, 50, -1], [10, 25, 50, \"All\"]]\n     } );\n   } );\n \n \n   \/\/ Setting the default display length as well as length menu\n   \/\/ This is likely to be wanted if you remove the '10' option which\n   \/\/ is the iDisplayLength default.\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"iDisplayLength\": 25,\n       \"aLengthMenu\": [[25, 50, 100, -1], [25, 50, 100, \"All\"]]\n     } );\n   } );","inputs":"","returns":"","group":"Option"},{"type":"array","parameter":"aoSearchCols","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Basically the same as oSearch, this parameter defines the individual column\nfiltering state at initialisation time. The array must be of ...<\/div><\/div>","purpose":"<p>Basically the same as oSearch, this parameter defines the individual column\nfiltering state at initialisation time. The array must be of the same size \nas the number of columns, and each element be an object with the parameters\n\"sSearch\" and \"bEscapeRegex\" (the latter is optional). 'null' is also\naccepted and the default will be used.<\/p>","default":"[]","param_type":"array","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoSearchCols\": [\n         null,\n         { \"sSearch\": \"My filter\" },\n         null,\n         { \"sSearch\": \"^[0-9]\", \"bEscapeRegex\": false }\n       ]\n     } );\n   } )","inputs":"","returns":"","group":"Option"},{"type":"array","parameter":"asStripeClasses","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>An array of CSS classes that should be applied to displayed rows. This \narray may be of any length, and DataTables will apply each class ...<\/div><\/div>","purpose":"<p>An array of CSS classes that should be applied to displayed rows. This \narray may be of any length, and DataTables will apply each class \nsequentially, looping when required.<\/p>","default":"null <i>Will take the values determined by the oClasses.sStripe*\n   options<\/i>","param_type":"array","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"asStripeClasses\": [ 'strip1', 'strip2', 'strip3' ]\n     } );\n   } )","inputs":"","returns":"","group":"Option"},{"type":"boolean","parameter":"bAutoWidth","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable automatic column width calculation. This can be disabled\nas an optimisation (it takes some time to calculate the widths...<\/div><\/div>","purpose":"<p>Enable or disable automatic column width calculation. This can be disabled\nas an optimisation (it takes some time to calculate the widths) if the\ntables widths are passed in using aoColumns.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bAutoWidth\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bDeferRender","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Deferred rendering can provide DataTables with a huge speed boost when you\nare using an Ajax or JS data source for the table. This option...<\/div><\/div>","purpose":"<p>Deferred rendering can provide DataTables with a huge speed boost when you\nare using an Ajax or JS data source for the table. This option, when set to\ntrue, will cause DataTables to defer the creation of the table elements for\neach row until they are needed for a draw - saving a significant amount of\ntime.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/arrays.txt\",\n       \"bDeferRender\": true\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bDestroy","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Replace a DataTable which matches the given selector and replace it with \none which has the properties of the new initialisation object p...<\/div><\/div>","purpose":"<p>Replace a DataTable which matches the given selector and replace it with \none which has the properties of the new initialisation object passed. If no\ntable matches the selector, then the new DataTable will be constructed as\nper normal.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sScrollY\": \"200px\",\n       \"bPaginate\": false\n     } );\n     \n     \/\/ Some time later....\n     $('#example').dataTable( {\n       \"bFilter\": false,\n       \"bDestroy\": true\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"boolean","parameter":"bFilter","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable filtering of data. Filtering in DataTables is \"smart\" in\r\nthat it allows the end user to input multiple words (space se...<\/div><\/div>","purpose":"<p>Enable or disable filtering of data. Filtering in DataTables is \"smart\" in\r\nthat it allows the end user to input multiple words (space separated) and\r\nwill match a row containing those words, even if not in the order that was\r\nspecified (this allows matching across multiple columns). Note that if you\r\nwish to use filtering in DataTables this must remain 'true' - to remove the\r\ndefault filtering input box and retain filtering abilities, please use\r\n<a href=\"\/ref#sDom\">sDom<\/a>).<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bFilter\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bInfo","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable the table information display. This shows information \nabout the data that is currently visible on the page, including ...<\/div><\/div>","purpose":"<p>Enable or disable the table information display. This shows information \nabout the data that is currently visible on the page, including information\nabout filtered data if that action is being performed.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bInfo\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bJQueryUI","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some\nslightly different and additional mark-up from what DataTable...<\/div><\/div>","purpose":"<p>Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some\nslightly different and additional mark-up from what DataTables has\ntraditionally used).<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bJQueryUI\": true\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bLengthChange","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Allows the end user to select the size of a formatted page from a select\nmenu (sizes are 10, 25, 50 and 100). Requires pagination (bPagin...<\/div><\/div>","purpose":"<p>Allows the end user to select the size of a formatted page from a select\nmenu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate).<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bLengthChange\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bPaginate","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable pagination.<\/p><\/div><\/div>","purpose":"<p>Enable or disable pagination.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bPaginate\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bProcessing","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable the display of a 'processing' indicator when the table is\nbeing processed (e.g. a sort). This is particularly useful fo...<\/div><\/div>","purpose":"<p>Enable or disable the display of a 'processing' indicator when the table is\nbeing processed (e.g. a sort). This is particularly useful for tables with\nlarge amounts of data where it can take a noticeable amount of time to sort\nthe entries.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bProcessing\": true\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bRetrieve","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Retrieve the DataTables object for the given selector. Note that if the\ntable has already been initialised, this parameter will cause Dat...<\/div><\/div>","purpose":"<p>Retrieve the DataTables object for the given selector. Note that if the\ntable has already been initialised, this parameter will cause DataTables\nto simply return the object that has already been set up - it will not take\naccount of any changes you might have made to the initialisation object\npassed to DataTables (setting this parameter to true is an acknowledgement\nthat you understand this). bDestroy can be used to reinitialise a table if\nyou need.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     initTable();\n     tableActions();\n   } );\n   \n   function initTable ()\n   {\n     return $('#example').dataTable( {\n       \"sScrollY\": \"200px\",\n       \"bPaginate\": false,\n       \"bRetrieve\": true\n     } );\n   }\n   \n   function tableActions ()\n   {\n     var oTable = initTable();\n     \/\/ perform API operations with oTable \n   }","inputs":"","returns":"","group":"Options"},{"type":"boolean","parameter":"bScrollAutoCss","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p><code>Deprecated<\/code> Indicate if DataTables should be allowed to set the padding \/ margin\r\netc for the scrolling header elements or no...<\/div><\/div>","purpose":"<p><code>Deprecated<\/code> Indicate if DataTables should be allowed to set the padding \/ margin\r\netc for the scrolling header elements or not. Typically you will want\r\nthis.<\/p>\r\n\r\n<p>Please note that this option has now been deprecated and will be removed\r\nin the next version of DataTables. Using CSS with `!important` can be used to achieve the same effect.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bScrollAutoCss\": false,\n       \"sScrollY\": \"200px\"\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"boolean","parameter":"bScrollCollapse","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When vertical (y) scrolling is enabled, DataTables will force the height of\nthe table's viewport to the given height at all times (useful...<\/div><\/div>","purpose":"<p>When vertical (y) scrolling is enabled, DataTables will force the height of\nthe table's viewport to the given height at all times (useful for layout).\nHowever, this can look odd when filtering data down to a small data set,\nand the footer is left \"floating\" further down. This parameter (when\nenabled) will cause DataTables to collapse the table's viewport down when\nthe result set will fit within the given Y height.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sScrollY\": \"200\",\n       \"bScrollCollapse\": true\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"boolean","parameter":"bScrollInfinite","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p><code>Deprecated<\/code> Enable infinite scrolling for DataTables (to be used in combination with\r\nsScrollY). Infinite scrolling means tha...<\/div><\/div>","purpose":"<p><code>Deprecated<\/code> Enable infinite scrolling for DataTables (to be used in combination with\r\nsScrollY). Infinite scrolling means that DataTables will continually load\r\ndata as a user scrolls through a table, which is very useful for large\r\ndataset. This cannot be used with pagination, which is automatically\r\ndisabled.<\/p>\r\n\r\n<p>Please note that this option has now been deprecated and will be removed\r\nin the next version of DataTables. Please use the <a href=\"http:\/\/datatables.net\/extras\/scroller\">Scroller extra<\/a> instead.<\/p>\r\n","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bScrollInfinite\": true,\n       \"bScrollCollapse\": true,\n       \"sScrollY\": \"200px\"\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bServerSide","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Configure DataTables to use server-side processing. Note that the\nsAjaxSource parameter must also be given in order to give DataTables a\n...<\/div><\/div>","purpose":"<p>Configure DataTables to use server-side processing. Note that the\nsAjaxSource parameter must also be given in order to give DataTables a\nsource to obtain the required data for each draw.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"xhr.php\"\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bServerSide","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Configure DataTables to use server-side processing. Note that the\nsAjaxSource parameter must also be given in order to give DataTables a\n...<\/div><\/div>","purpose":"<p>Configure DataTables to use server-side processing. Note that the\nsAjaxSource parameter must also be given in order to give DataTables a\nsource to obtain the required data for each draw.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"xhr.php\"\n     } );\n   } );","inputs":"","returns":"","group":"Server-side"},{"type":"boolean","parameter":"bSort","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable sorting of columns. Sorting of individual columns can be\ndisabled by the \"bSortable\" option for each column.<\/p><\/div><\/div>","purpose":"<p>Enable or disable sorting of columns. Sorting of individual columns can be\ndisabled by the \"bSortable\" option for each column.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bSort\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bSortCellsTop","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Allows control over whether DataTables should use the top (true) unique\ncell that is found for a single column, or the bottom (false - de...<\/div><\/div>","purpose":"<p>Allows control over whether DataTables should use the top (true) unique\ncell that is found for a single column, or the bottom (false - default).\nThis is useful when using complex headers.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bSortCellsTop\": true\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"boolean","parameter":"bSortClasses","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and\r\n'sorting_3' to the columns which are currently being sorted o...<\/div><\/div>","purpose":"<p>Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and\r\n'sorting_3' to the columns which are currently being sorted on. This is\r\npresented as a feature switch as it can increase processing time (while\r\nclasses are removed and added) so for large data sets you might want to\r\nturn this off.<\/p>","default":"true","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bSortClasses\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"boolean","parameter":"bStateSave","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable state saving. When enabled a cookie will be used to save\r\ntable display information such as pagination information, dis...<\/div><\/div>","purpose":"<p>Enable or disable state saving. When enabled a cookie will be used to save\r\ntable display information such as pagination information, display length,\r\nfiltering and sorting. As such when the end user reloads the page the\r\ndisplay will match what they had previously set up.<\/p>","default":"false","param_type":"boolean","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"bStateSave\": true\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"function","parameter":"fnCookieCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Customise the cookie and \/ or the parameters being stored when using\nDataTables with state saving enabled. This function is called whenev...<\/div><\/div>","purpose":"<p>Customise the cookie and \/ or the parameters being stored when using\nDataTables with state saving enabled. This function is called whenever\nthe cookie is modified, and it expects a fully formed cookie string to be\nreturned. Note that the data object passed in is a Javascript object which\nmust be converted to a string (JSON.stringify for example).<\/p>","default":"","param_type":"function","code":"   $(document).ready( function () {\n     $('#example').dataTable( {\n       \"fnCookieCallback\": function (sName, oData, sExpires, sPath) {\n         \/\/ Customise oData or sName or whatever else here\n         return sName + \"=\"+JSON.stringify(oData)+\"; expires=\" + sExpires +\"; path=\" + sPath;\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: Name of the cookie defined by DataTables<\/li><li>{<i class=\"doc_param\">object<\/i>}: Data to be stored in the cookie<\/li><li>{<i class=\"doc_param\">string<\/i>}: Cookie expires string<\/li><li>{<i class=\"doc_param\">string<\/i>}: Path of the cookie to set<\/li><\/ol>","returns":"{<i class=\"doc_param\">string<\/i>}: Cookie formatted string (which should be encoded by\n   using encodeURIComponent())","group":"Callbacks"},{"type":"function","parameter":"fnCreatedRow","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function is called when a TR element is created (and all TD child\nelements have been inserted), or registered if using a DOM source,...<\/div><\/div>","purpose":"<p>This function is called when a TR element is created (and all TD child\nelements have been inserted), or registered if using a DOM source, allowing\nmanipulation of the TR element (adding classes etc).<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnCreatedRow\": function( nRow, aData, iDataIndex ) {\n         \/\/ Bold the grade for all 'A' grade browsers\n         if ( aData[4] == \"A\" )\n         {\n           $('td:eq(4)', nRow).html( '<b>A<\/b>' );\n         }\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: \"TR\" element for the current row<\/li><li>{<i class=\"doc_param\">array<\/i>}: Raw data array for this row<\/li><li>{<i class=\"doc_param\">int<\/i>}: The index of this row in aoData<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnDrawCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function is called on every 'draw' event, and allows you to\ndynamically modify any aspect you want about the created DOM.<\/p><\/div><\/div>","purpose":"<p>This function is called on every 'draw' event, and allows you to\ndynamically modify any aspect you want about the created DOM.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnDrawCallback\": function( oSettings ) {\n         alert( 'DataTables has redrawn the table' );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnFooterCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Identical to fnHeaderCallback() but for the table footer this function\nallows you to modify the table footer on every 'draw' even.<\/p><\/div><\/div>","purpose":"<p>Identical to fnHeaderCallback() but for the table footer this function\nallows you to modify the table footer on every 'draw' even.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnFooterCallback\": function( nFoot, aData, iStart, iEnd, aiDisplay ) {\n         nFoot.getElementsByTagName('th')[0].innerHTML = \"Starting index is \"+iStart;\n       }\n     } );\n   } )","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: \"TR\" element for the footer<\/li><li>{<i class=\"doc_param\">array<\/i>}: Full table data (as derived from the original HTML)<\/li><li>{<i class=\"doc_param\">int<\/i>}: Index for the current display starting point in the \n   display array<\/li><li>{<i class=\"doc_param\">int<\/i>}: Index for the current display ending point in the \n   display array<\/li><li>{<i class=\"doc_param\">array int<\/i>}: Index array to translate the visual position\n   to the full data array<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnFormatNumber","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When rendering large numbers in the information element for the table\n(i.e. \"Showing 1 to 10 of 57 entries\") DataTables will render large...<\/div><\/div>","purpose":"<p>When rendering large numbers in the information element for the table\n(i.e. \"Showing 1 to 10 of 57 entries\") DataTables will render large numbers\nto have a comma separator for the 'thousands' units (e.g. 1 million is\nrendered as \"1,000,000\") to help readability for the end user. This\nfunction will override the default method DataTables uses.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnFormatNumber\": function ( iIn ) {\n         if ( iIn &lt; 1000 ) {\n           return iIn;\n         } else {\n           var \n             s=(iIn+\"\"), \n             a=s.split(\"\"), out=\"\", \n             iLen=s.length;\n           \n           for ( var i=0 ; i&lt;iLen ; i++ ) {\n             if ( i%3 === 0 &amp;&amp; i !== 0 ) {\n               out = \"'\"+out;\n             }\n             out = a[iLen-i-1]+out;\n           }\n         }\n         return out;\n       };\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">int<\/i>}: number to be formatted<\/li><\/ol>","returns":"{<i class=\"doc_param\">string<\/i>}: formatted string for DataTables to show the number","group":"Callbacks"},{"type":"function","parameter":"fnHeaderCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function is called on every 'draw' event, and allows you to\ndynamically modify the header row. This can be used to calculate and\ndis...<\/div><\/div>","purpose":"<p>This function is called on every 'draw' event, and allows you to\ndynamically modify the header row. This can be used to calculate and\ndisplay useful information about the table.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnHeaderCallback\": function( nHead, aData, iStart, iEnd, aiDisplay ) {\n         nHead.getElementsByTagName('th')[0].innerHTML = \"Displaying \"+(iEnd-iStart)+\" records\";\n       }\n     } );\n   } )","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: \"TR\" element for the header<\/li><li>{<i class=\"doc_param\">array<\/i>}: Full table data (as derived from the original HTML)<\/li><li>{<i class=\"doc_param\">int<\/i>}: Index for the current display starting point in the\n   display array<\/li><li>{<i class=\"doc_param\">int<\/i>}: Index for the current display ending point in the\n   display array<\/li><li>{<i class=\"doc_param\">array int<\/i>}: Index array to translate the visual position\n   to the full data array<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnInfoCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The information element can be used to convey information about the current\nstate of the table. Although the internationalisation options...<\/div><\/div>","purpose":"<p>The information element can be used to convey information about the current\nstate of the table. Although the internationalisation options presented by\nDataTables are quite capable of dealing with most customisations, there may\nbe times where you wish to customise the string further. This callback\nallows you to do exactly that.<\/p>","default":"","param_type":"function","code":"   $('#example').dataTable( {\n     \"fnInfoCallback\": function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) {\n       return iStart +\" to \"+ iEnd;\n     }\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">int<\/i>}: Starting position in data for the draw<\/li><li>{<i class=\"doc_param\">int<\/i>}: End position in data for the draw<\/li><li>{<i class=\"doc_param\">int<\/i>}: Total number of rows in the table (regardless of\n   filtering)<\/li><li>{<i class=\"doc_param\">int<\/i>}: Total number of rows in the data set, after filtering<\/li><li>{<i class=\"doc_param\">string<\/i>}: The string that DataTables has formatted using it's\n   own rules<\/li><\/ol>","returns":"{<i class=\"doc_param\">string<\/i>}: The string to be displayed in the information element.","group":"Callbacks"},{"type":"function","parameter":"fnInitComplete","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Called when the table has been initialised. Normally DataTables will\ninitialise sequentially and there will be no need for this function,...<\/div><\/div>","purpose":"<p>Called when the table has been initialised. Normally DataTables will\ninitialise sequentially and there will be no need for this function,\nhowever, this does not hold true when using external language information\nsince that is obtained using an async XHR call.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnInitComplete\": function(oSettings, json) {\n         alert( 'DataTables has finished its initialisation.' );\n       }\n     } );\n   } )","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">object<\/i>}: The JSON object request from the server - only\n   present if client-side Ajax sourced data is used<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnPreDrawCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Called at the very start of each table draw and can be used to cancel the\ndraw by returning false, any other return (including undefined)...<\/div><\/div>","purpose":"<p>Called at the very start of each table draw and can be used to cancel the\ndraw by returning false, any other return (including undefined) results in\nthe full draw occurring).<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnPreDrawCallback\": function( oSettings ) {\n         if ( $('#test').val() == 1 ) {\n           return false;\n         }\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><\/ol>","returns":"{<i class=\"doc_param\">boolean<\/i>}: False will cancel the draw, anything else (including no\n   return) will allow it to complete.","group":"Callbacks"},{"type":"function","parameter":"fnRowCallback","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This function allows you to 'post process' each row after it have been\ngenerated for each table draw, but before it is rendered on screen...<\/div><\/div>","purpose":"<p>This function allows you to 'post process' each row after it have been\ngenerated for each table draw, but before it is rendered on screen. This\nfunction might be used for setting the row class name etc.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"fnRowCallback\": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {\n         \/\/ Bold the grade for all 'A' grade browsers\n         if ( aData[4] == \"A\" )\n         {\n           $('td:eq(4)', nRow).html( '<b>A<\/b>' );\n         }\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">node<\/i>}: \"TR\" element for the current row<\/li><li>{<i class=\"doc_param\">array<\/i>}: Raw data array for this row<\/li><li>{<i class=\"doc_param\">int<\/i>}: The display index for the current table draw<\/li><li>{<i class=\"doc_param\">int<\/i>}: The index of the data in the full list of\n   rows (after filtering)<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnServerData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter allows you to override the default function which obtains\nthe data from the server ($.getJSON) so something more suitable ...<\/div><\/div>","purpose":"<p>This parameter allows you to override the default function which obtains\nthe data from the server ($.getJSON) so something more suitable for your\napplication. For example you could use POST data, or pull information from\na Gears or AIR database.<\/p>","default":"","param_type":"function","code":"   \/\/ POST data to server\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bProcessing\": true,\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"xhr.php\",\n       \"fnServerData\": function ( sSource, aoData, fnCallback, oSettings ) {\n         oSettings.jqXHR = $.ajax( {\n           \"dataType\": 'json', \n           \"type\": \"POST\", \n           \"url\": sSource, \n           \"data\": aoData, \n           \"success\": fnCallback\n         } );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: HTTP source to obtain the data from (sAjaxSource)<\/li><li>{<i class=\"doc_param\">array<\/i>}: A key\/value pair object containing the data to send\n   to the server<\/li><li>{<i class=\"doc_param\">function<\/i>}: to be called on completion of the data get\n   process that will draw the data on the page.<\/li><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnServerData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter allows you to override the default function which obtains\nthe data from the server ($.getJSON) so something more suitable ...<\/div><\/div>","purpose":"<p>This parameter allows you to override the default function which obtains\nthe data from the server ($.getJSON) so something more suitable for your\napplication. For example you could use POST data, or pull information from\na Gears or AIR database.<\/p>","default":"","param_type":"function","code":"   \/\/ POST data to server\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bProcessing\": true,\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"xhr.php\",\n       \"fnServerData\": function ( sSource, aoData, fnCallback, oSettings ) {\n         oSettings.jqXHR = $.ajax( {\n           \"dataType\": 'json', \n           \"type\": \"POST\", \n           \"url\": sSource, \n           \"data\": aoData, \n           \"success\": fnCallback\n         } );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">string<\/i>}: HTTP source to obtain the data from (sAjaxSource)<\/li><li>{<i class=\"doc_param\">array<\/i>}: A key\/value pair object containing the data to send\n   to the server<\/li><li>{<i class=\"doc_param\">function<\/i>}: to be called on completion of the data get\n   process that will draw the data on the page.<\/li><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><\/ol>","returns":"","group":"Server-side"},{"type":"function","parameter":"fnServerParams","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>It is often useful to send extra data to the server when making an Ajax\nrequest - for example custom filtering information, and this call...<\/div><\/div>","purpose":"<p>It is often useful to send extra data to the server when making an Ajax\nrequest - for example custom filtering information, and this callback\nfunction makes it trivial to send extra information to the server. The\npassed in parameter is the data set that has been constructed by\nDataTables, and you can add to this or modify it as you require.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bProcessing\": true,\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/server_processing.php\",\n       \"fnServerParams\": function ( aoData ) {\n         aoData.push( { \"name\": \"more_data\", \"value\": \"my_value\" } );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">array<\/i>}: Data array (array of objects which are name\/value\n   pairs) that has been constructed by DataTables and will be sent to the\n   server. In the case of Ajax sourced data with server-side processing\n   this will be an empty array, for server-side processing there will be a\n   significant number of parameters!<\/li><\/ol>","returns":"{<i class=\"doc_param\">undefined<\/i>}: Ensure that you modify the aoData array passed in,\n   as this is passed by reference.","group":"Callbacks"},{"type":"function","parameter":"fnServerParams","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>It is often useful to send extra data to the server when making an Ajax\nrequest - for example custom filtering information, and this call...<\/div><\/div>","purpose":"<p>It is often useful to send extra data to the server when making an Ajax\nrequest - for example custom filtering information, and this callback\nfunction makes it trivial to send extra information to the server. The\npassed in parameter is the data set that has been constructed by\nDataTables, and you can add to this or modify it as you require.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bProcessing\": true,\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/server_processing.php\",\n       \"fnServerParams\": function ( aoData ) {\n         aoData.push( { \"name\": \"more_data\", \"value\": \"my_value\" } );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">array<\/i>}: Data array (array of objects which are name\/value\n   pairs) that has been constructed by DataTables and will be sent to the\n   server. In the case of Ajax sourced data with server-side processing\n   this will be an empty array, for server-side processing there will be a\n   significant number of parameters!<\/li><\/ol>","returns":"{<i class=\"doc_param\">undefined<\/i>}: Ensure that you modify the aoData array passed in,\n   as this is passed by reference.","group":"Server-side"},{"type":"function","parameter":"fnStateLoad","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Load the table state. With this function you can define from where, and how, the\nstate of a table is loaded. By default DataTables will l...<\/div><\/div>","purpose":"<p>Load the table state. With this function you can define from where, and how, the\nstate of a table is loaded. By default DataTables will load from its state saving\ncookie, but you might wish to use local storage (HTML5) or a server-side database.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateLoad\": function (oSettings) {\n         var o;\n         \n         \/\/ Send an Ajax request to the server to get the data. Note that\n         \/\/ this is a synchronous request.\n         $.ajax( {\n           \"url\": \"\/state_load\",\n           \"async\": false,\n           \"dataType\": \"json\",\n           \"success\": function (json) {\n             o = json;\n           }\n         } );\n         \n         return o;\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><\/ol>","returns":"{<i class=\"doc_param\">object<\/i>}: The DataTables state object to be loaded","group":"Callbacks"},{"type":"function","parameter":"fnStateLoadParams","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Callback which allows modification of the saved state prior to loading that state.\nThis callback is called when the table is loading stat...<\/div><\/div>","purpose":"<p>Callback which allows modification of the saved state prior to loading that state.\nThis callback is called when the table is loading state from the stored data, but\nprior to the settings object being modified by the saved state. Note that for \nplug-in authors, you should use the 'stateLoadParams' event to load parameters for \na plug-in.<\/p>","default":"","param_type":"function","code":"   \/\/ Remove a saved filter, so filtering is never loaded\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateLoadParams\": function (oSettings, oData) {\n         oData.oSearch.sSearch = \"\";\n       }\n     } );\n   } );\n\n \n   \/\/ Disallow state loading by returning false\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateLoadParams\": function (oSettings, oData) {\n         return false;\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">object<\/i>}: The state object that is to be loaded<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnStateLoaded","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Callback that is called when the state has been loaded from the state saving method\nand the DataTables settings object has been modified ...<\/div><\/div>","purpose":"<p>Callback that is called when the state has been loaded from the state saving method\nand the DataTables settings object has been modified as a result of the loaded state.<\/p>","default":"","param_type":"function","code":"   \/\/ Show an alert with the filtering value that was saved\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateLoaded\": function (oSettings, oData) {\n         alert( 'Saved filter was: '+oData.oSearch.sSearch );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">object<\/i>}: The state object that was loaded<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnStateSave","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Save the table state. This function allows you to define where and how the state\ninformation for the table is stored - by default it will...<\/div><\/div>","purpose":"<p>Save the table state. This function allows you to define where and how the state\ninformation for the table is stored - by default it will use a cookie, but you\nmight want to use local storage (HTML5) or a server-side database.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateSave\": function (oSettings, oData) {\n         \/\/ Send an Ajax request to the server with the state object\n         $.ajax( {\n           \"url\": \"\/state_save\",\n           \"data\": oData,\n           \"dataType\": \"json\",\n           \"method\": \"POST\",\n           \"success\": function () {}\n         } );\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">object<\/i>}: The state object to be saved<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"function","parameter":"fnStateSaveParams","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Callback which allows modification of the state to be saved. Called when the table \nhas changed state a new state save is required. This ...<\/div><\/div>","purpose":"<p>Callback which allows modification of the state to be saved. Called when the table \nhas changed state a new state save is required. This method allows modification of\nthe state saving object prior to actually doing the save, including addition or \nother state properties or modification. Note that for plug-in authors, you should \nuse the 'stateSaveParams' event to save parameters for a plug-in.<\/p>","default":"","param_type":"function","code":"   \/\/ Remove a saved filter, so filtering is never saved\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bStateSave\": true,\n       \"fnStateSaveParams\": function (oSettings, oData) {\n         oData.oSearch.sSearch = \"\";\n       }\n     } );\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: DataTables settings object<\/li><li>{<i class=\"doc_param\">object<\/i>}: The state object to be saved<\/li><\/ol>","returns":"","group":"Callbacks"},{"type":"int","parameter":"iCookieDuration","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Duration of the cookie which is used for storing session information. This\nvalue is given in seconds.<\/p><\/div><\/div>","purpose":"<p>Duration of the cookie which is used for storing session information. This\nvalue is given in seconds.<\/p>","default":"7200 <i>(2 hours)<\/i>","param_type":"int","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"iCookieDuration\": 60*60*24; \/\/ 1 day\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"int","parameter":"iDeferLoading","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When enabled DataTables will not make a request to the server for the first\npage draw - rather it will use the data already on the page (...<\/div><\/div>","purpose":"<p>When enabled DataTables will not make a request to the server for the first\npage draw - rather it will use the data already on the page (no sorting etc\nwill be applied to it), thus saving on an XHR at load time. iDeferLoading\nis used to indicate that deferred loading is required, but it is also used\nto tell DataTables how many records there are in the full table (allowing\nthe information element and pagination to be displayed correctly). In the case\nwhere a filtering is applied to the table on initial load, this can be\nindicated by giving the parameter as an array, where the first element is\nthe number of records available after filtering and the second element is the\nnumber of records without filtering (allowing the table information element\nto be shown correctly).<\/p>","default":"null","param_type":"int","code":"   \/\/ 57 records available in the table, no filtering applied\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/server_processing.php\",\n       \"iDeferLoading\": 57\n     } );\n   } );\n\n \n   \/\/ 57 records after filtering, 100 without filtering (an initial filter applied)\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/server_processing.php\",\n       \"iDeferLoading\": [ 57, 100 ],\n       \"oSearch\": {\n         \"sSearch\": \"my_filter\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"int","parameter":"iDisplayLength","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Number of rows to display on a single page when using pagination. If\nfeature enabled (bLengthChange) then the end user will be able to ov...<\/div><\/div>","purpose":"<p>Number of rows to display on a single page when using pagination. If\nfeature enabled (bLengthChange) then the end user will be able to override\nthis to a custom setting using a pop-up menu.<\/p>","default":"10","param_type":"int","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"iDisplayLength\": 50\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"int","parameter":"iDisplayStart","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Define the starting point for data display when using DataTables with\npagination. Note that this parameter is the number of records, rath...<\/div><\/div>","purpose":"<p>Define the starting point for data display when using DataTables with\npagination. Note that this parameter is the number of records, rather than\nthe page number, so if you have 10 records per page and want to start on\nthe third page, it should be \"20\".<\/p>","default":"0","param_type":"int","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"iDisplayStart\": 20\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"int","parameter":"iScrollLoadGap","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The scroll gap is the amount of scrolling that is left to go before\nDataTables will load the next 'page' of data automatically. You typic...<\/div><\/div>","purpose":"<p>The scroll gap is the amount of scrolling that is left to go before\nDataTables will load the next 'page' of data automatically. You typically\nwant a gap which is big enough that the scrolling will be smooth for the\nuser, while not so large that it will load more data than need.<\/p>","default":"100","param_type":"int","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bScrollInfinite\": true,\n       \"bScrollCollapse\": true,\n       \"sScrollY\": \"200px\",\n       \"iScrollLoadGap\": 50\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"int","parameter":"iTabIndex","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>By default DataTables allows keyboard navigation of the table (sorting, paging,\nand filtering) by adding a tabindex attribute to the requ...<\/div><\/div>","purpose":"<p>By default DataTables allows keyboard navigation of the table (sorting, paging,\nand filtering) by adding a tabindex attribute to the required elements. This\nallows you to tab through the controls and press the enter key to activate them.\nThe tabindex is default 0, meaning that the tab follows the flow of the document.\nYou can overrule this using this parameter if you wish. Use a value of -1 to\ndisable built-in keyboard navigation.<\/p>","default":"0","param_type":"int","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"iTabIndex\": 1\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"oLanguage.oAria.sSortAscending","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>ARIA label that is added to the table headers when the column may be\nsorted ascending by activing the column (click or return when focuse...<\/div><\/div>","purpose":"<p>ARIA label that is added to the table headers when the column may be\nsorted ascending by activing the column (click or return when focused).\nNote that the column header is prefixed to this string.<\/p>","default":": activate to sort column ascending","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oAria\": {\n           \"sSortAscending\": \" - click\/return to sort ascending\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.oAria.sSortDescending","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>ARIA label that is added to the table headers when the column may be\nsorted descending by activing the column (click or return when focus...<\/div><\/div>","purpose":"<p>ARIA label that is added to the table headers when the column may be\nsorted descending by activing the column (click or return when focused).\nNote that the column header is prefixed to this string.<\/p>","default":": activate to sort column ascending","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oAria\": {\n           \"sSortDescending\": \" - click\/return to sort descending\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.oPaginate.sFirst","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text to use when using the 'full_numbers' type of pagination for the\nbutton to take the user to the first page.<\/p><\/div><\/div>","purpose":"<p>Text to use when using the 'full_numbers' type of pagination for the\nbutton to take the user to the first page.<\/p>","default":"First","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oPaginate\": {\n           \"sFirst\": \"First page\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.oPaginate.sLast","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text to use when using the 'full_numbers' type of pagination for the\nbutton to take the user to the last page.<\/p><\/div><\/div>","purpose":"<p>Text to use when using the 'full_numbers' type of pagination for the\nbutton to take the user to the last page.<\/p>","default":"Last","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oPaginate\": {\n           \"sLast\": \"Last page\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.oPaginate.sNext","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text to use for the 'next' pagination button (to take the user to the \nnext page).<\/p><\/div><\/div>","purpose":"<p>Text to use for the 'next' pagination button (to take the user to the \nnext page).<\/p>","default":"Next","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oPaginate\": {\n           \"sNext\": \"Next page\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.oPaginate.sPrevious","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text to use for the 'previous' pagination button (to take the user to<br><\/br>the previous page).<\/p><\/div><\/div>","purpose":"<p>Text to use for the 'previous' pagination button (to take the user to<br><\/br>the previous page).<\/p>","default":"Previous","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"oPaginate\": {\n           \"sPrevious\": \"Previous page\"\n         }\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sEmptyTable","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This string is shown in preference to sZeroRecords when the table is\nempty of data (regardless of filtering). Note that this is an option...<\/div><\/div>","purpose":"<p>This string is shown in preference to sZeroRecords when the table is\nempty of data (regardless of filtering). Note that this is an optional\nparameter - if it is not given, the value of sZeroRecords will be used\ninstead (either the default or given value).<\/p>","default":"No data available in table","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sEmptyTable\": \"No data available in table\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sInfo","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This string gives information to the end user about the information that \nis current on display on the page. The <em>START<\/em>, <em>END<...<\/div><\/div>","purpose":"<p>This string gives information to the end user about the information that \nis current on display on the page. The <em>START<\/em>, <em>END<\/em> and <em>TOTAL<\/em> \nvariables are all dynamically replaced as the table display updates, and \ncan be freely moved or removed as the language requirements change.<\/p>","default":"Showing _START_ to _END_ of _TOTAL_ entries","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sInfo\": \"Got a total of _TOTAL_ entries to show (_START_ to _END_)\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sInfoEmpty","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Display information string for when the table is empty. Typically the \nformat of this string should match sInfo.<\/p><\/div><\/div>","purpose":"<p>Display information string for when the table is empty. Typically the \nformat of this string should match sInfo.<\/p>","default":"Showing 0 to 0 of 0 entries","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sInfoEmpty\": \"No entries to show\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sInfoFiltered","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When a user filters the information in a table, this string is appended \nto the information (sInfo) to give an idea of how strong the fil...<\/div><\/div>","purpose":"<p>When a user filters the information in a table, this string is appended \nto the information (sInfo) to give an idea of how strong the filtering \nis. The variable <em>MAX<\/em> is dynamically updated.<\/p>","default":"(filtered from _MAX_ total entries)","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sInfoFiltered\": \" - filtering from _MAX_ records\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sInfoPostFix","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>If can be useful to append extra information to the info string at times,\nand this variable does exactly that. This information will be a...<\/div><\/div>","purpose":"<p>If can be useful to append extra information to the info string at times,\nand this variable does exactly that. This information will be appended to\nthe sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are\nbeing used) at all times.<\/p>","default":"<i>Empty string<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sInfoPostFix\": \"All records shown are derived from real information.\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sInfoThousands","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>DataTables has a build in number formatter (fnFormatNumber) which is used\nto format large numbers that are used in the table information....<\/div><\/div>","purpose":"<p>DataTables has a build in number formatter (fnFormatNumber) which is used\nto format large numbers that are used in the table information. By\ndefault a comma is used, but this can be trivially changed to any\ncharacter you wish with this parameter.<\/p>","default":",","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sInfoThousands\": \"'\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sLengthMenu","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Detail the action that will be taken when the drop down menu for the\npagination length option is changed. The '<em>MENU<\/em>' variable is...<\/div><\/div>","purpose":"<p>Detail the action that will be taken when the drop down menu for the\npagination length option is changed. The '<em>MENU<\/em>' variable is replaced\nwith a default select list of 10, 25, 50 and 100, and can be replaced\nwith a custom select box if required.<\/p>","default":"Show _MENU_ entries","param_type":"string","code":"   \/\/ Language change only\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sLengthMenu\": \"Display _MENU_ records\"\n       }\n     } );\n   } );\n   \n \n   \/\/ Language and options change\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sLengthMenu\": 'Display <select>'+\n           '<option value=\"10\">10<\/option>'+\n           '<option value=\"20\">20<\/option>'+\n           '<option value=\"30\">30<\/option>'+\n           '<option value=\"40\">40<\/option>'+\n           '<option value=\"50\">50<\/option>'+\n           '<option value=\"-1\">All<\/option>'+\n           '<\/select> records'\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sLoadingRecords","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When using Ajax sourced data and during the first draw when DataTables is\ngathering the data, this message is shown in an empty row in th...<\/div><\/div>","purpose":"<p>When using Ajax sourced data and during the first draw when DataTables is\ngathering the data, this message is shown in an empty row in the table to\nindicate to the end user the the data is being loaded. Note that this\nparameter is not used when loading data by server-side processing, just\nAjax sourced data with client-side processing.<\/p>","default":"Loading...","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sLoadingRecords\": \"Please wait - loading...\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sProcessing","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text which is displayed when the table is processing a user action\n(usually a sort command or similar).<\/p><\/div><\/div>","purpose":"<p>Text which is displayed when the table is processing a user action\n(usually a sort command or similar).<\/p>","default":"Processing...","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sProcessing\": \"DataTables is currently busy\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sSearch","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Details the actions that will be taken when the user types into the\nfiltering input text box. The variable \"<em>INPUT<\/em>\", if used in t...<\/div><\/div>","purpose":"<p>Details the actions that will be taken when the user types into the\nfiltering input text box. The variable \"<em>INPUT<\/em>\", if used in the string,\nis replaced with the HTML text box for the filtering input allowing\ncontrol over where it appears in the string. If \"<em>INPUT<\/em>\" is not given\nthen the input box is appended to the string automatically.<\/p>","default":"Search:","param_type":"string","code":"   \/\/ Input text box will be appended at the end automatically\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sSearch\": \"Filter records:\"\n       }\n     } );\n   } );\n   \n \n   \/\/ Specify where the filter should appear\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sSearch\": \"Apply filter _INPUT_ to table\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sUrl","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>All of the language information can be stored in a file on the\nserver-side, which DataTables will look up if this parameter is passed.\nIt...<\/div><\/div>","purpose":"<p>All of the language information can be stored in a file on the\nserver-side, which DataTables will look up if this parameter is passed.\nIt must store the URL of the language file, which is in a JSON format,\nand the object has the same properties as the oLanguage object in the\ninitialiser object (i.e. the above parameters). Please refer to one of\nthe example language files to see how this works in action.<\/p>","default":"<i>Empty string - i.e. disabled<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sUrl\": \"http:\/\/www.sprymedia.co.uk\/dataTables\/lang.txt\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"string","parameter":"oLanguage.sZeroRecords","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Text shown inside the table records when the is no information to be\ndisplayed after filtering. sEmptyTable is shown when there is simply...<\/div><\/div>","purpose":"<p>Text shown inside the table records when the is no information to be\ndisplayed after filtering. sEmptyTable is shown when there is simply no\ninformation in the table at all (regardless of filtering).<\/p>","default":"No matching records found","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oLanguage\": {\n         \"sZeroRecords\": \"No records to display\"\n       }\n     } );\n   } );","inputs":"","returns":"","group":"Language"},{"type":"","parameter":"oSearch","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter allows you to define the global filtering state at\r\ninitialisation time. As an object the \"sSearch\" parameter must be\r\ndef...<\/div><\/div>","purpose":"<p>This parameter allows you to define the global filtering state at\r\ninitialisation time. As an object the \"sSearch\" parameter must be\r\ndefined, but all other parameters are optional. When \"bRegex\" is true,\r\nthe search string will be treated as a regular expression, when false\r\n(default) it will be treated as a straight string. When \"bSmart\"\r\nDataTables will use it's smart filtering methods (to word match at\r\nany point in the data), when false this will not be done.<\/p>","default":"","param_type":"","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"oSearch\": {\"sSearch\": \"Initial search\"}\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sAjaxDataProp","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>By default DataTables will look for the property 'aaData' when obtaining\ndata from an Ajax source or for server-side processing - this pa...<\/div><\/div>","purpose":"<p>By default DataTables will look for the property 'aaData' when obtaining\ndata from an Ajax source or for server-side processing - this parameter\nallows that property to be changed. You can use Javascript dotted object\nnotation to get a data source for multiple levels of nesting.<\/p>","default":"aaData","param_type":"string","code":"   \/\/ Get data from { \"data\": [...] }\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/data.txt\",\n       \"sAjaxDataProp\": \"data\"\n     } );\n   } );\n   \n \n   \/\/ Get data from { \"data\": { \"inner\": [...] } }\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/data.txt\",\n       \"sAjaxDataProp\": \"data.inner\"\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sAjaxDataProp","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>By default DataTables will look for the property 'aaData' when obtaining\ndata from an Ajax source or for server-side processing - this pa...<\/div><\/div>","purpose":"<p>By default DataTables will look for the property 'aaData' when obtaining\ndata from an Ajax source or for server-side processing - this parameter\nallows that property to be changed. You can use Javascript dotted object\nnotation to get a data source for multiple levels of nesting.<\/p>","default":"aaData","param_type":"string","code":"   \/\/ Get data from { \"data\": [...] }\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/data.txt\",\n       \"sAjaxDataProp\": \"data\"\n     } );\n   } );\n   \n \n   \/\/ Get data from { \"data\": { \"inner\": [...] } }\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/data.txt\",\n       \"sAjaxDataProp\": \"data.inner\"\n     } );\n   } );","inputs":"","returns":"","group":"Server-side"},{"type":"string","parameter":"sAjaxSource","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>You can instruct DataTables to load data from an external source using this\nparameter (use aData if you want to pass data in you already ...<\/div><\/div>","purpose":"<p>You can instruct DataTables to load data from an external source using this\nparameter (use aData if you want to pass data in you already have). Simply\nprovide a url a JSON object can be obtained from. This object must include\nthe parameter 'aaData' which is the data source for the table.<\/p>","default":"null","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sAjaxSource\": \"http:\/\/www.sprymedia.co.uk\/dataTables\/json.php\"\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sAjaxSource","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>You can instruct DataTables to load data from an external source using this\nparameter (use aData if you want to pass data in you already ...<\/div><\/div>","purpose":"<p>You can instruct DataTables to load data from an external source using this\nparameter (use aData if you want to pass data in you already have). Simply\nprovide a url a JSON object can be obtained from. This object must include\nthe parameter 'aaData' which is the data source for the table.<\/p>","default":"null","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sAjaxSource\": \"http:\/\/www.sprymedia.co.uk\/dataTables\/json.php\"\n     } );\n   } )","inputs":"","returns":"","group":"Server-side"},{"type":"string","parameter":"sCookiePrefix","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter can be used to override the default prefix that DataTables\nassigns to a cookie when state saving is enabled.<\/p><\/div><\/div>","purpose":"<p>This parameter can be used to override the default prefix that DataTables\nassigns to a cookie when state saving is enabled.<\/p>","default":"SpryMedia_DataTables_","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sCookiePrefix\": \"my_datatable_\",\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sDom","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This initialisation variable allows you to specify exactly where in the\nDOM you want DataTables to inject the various controls it adds to...<\/div><\/div>","purpose":"<p>This initialisation variable allows you to specify exactly where in the\nDOM you want DataTables to inject the various controls it adds to the page\n(for example you might want the pagination controls at the top of the\ntable). DIV elements (with or without a custom class) can also be added to\naid styling. The follow syntax is used:\n  <ul>\n    <li>The following options are allowed:\t\n      <ul>\n        <li>'l' - Length changing<\/li\n        <li>'f' - Filtering input<\/li>\n        <li>'t' - The table!<\/li>\n        <li>'i' - Information<\/li>\n        <li>'p' - Pagination<\/li>\n        <li>'r' - pRocessing<\/li>\n      <\/ul>\n    <\/li>\n    <li>The following constants are allowed:\n      <ul>\n        <li>'H' - jQueryUI theme \"header\" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')<\/li>\n        <li>'F' - jQueryUI theme \"footer\" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')<\/li>\n      <\/ul>\n    <\/li>\n    <li>The following syntax is expected:\n      <ul>\n        <li>'<' and '>' - div elements<\/li>\n        <li>'<\"class\" and '>' - div with a class<\/li>\n        <li>'<\"#id\" and '>' - div with an ID<\/li>\n      <\/ul>\n    <\/li>\n    <li>Examples:\n      <ul>\n        <li>'<\"wrapper\"flipt>'<\/li>\n        <li>'<lf<t>ip>'<\/li>\n      <\/ul>\n    <\/li>\n  <\/ul><\/p>","default":"lfrtip <i>(when bJQueryUI is false)<\/i> <b>or<\/b> \n   <\"H\"lfr>t<\"F\"ip> <i>(when bJQueryUI is true)<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sDom\": '&lt;\"top\"i&gt;rt&lt;\"bottom\"flp&gt;&lt;\"clear\"&gt;'\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sPaginationType","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>DataTables features two different built-in pagination interaction methods\r\n('two_button' or 'full_numbers') which present different page ...<\/div><\/div>","purpose":"<p>DataTables features two different built-in pagination interaction methods\r\n('two_button' or 'full_numbers') which present different page controls to\r\nthe end user. Further methods can be added using the API (see below).<\/p>","default":"two_button","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sPaginationType\": \"full_numbers\"\n     } );\n   } )","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sScrollX","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable horizontal scrolling. When a table is too wide to fit into a certain\nlayout, or you have a large number of columns in the table, y...<\/div><\/div>","purpose":"<p>Enable horizontal scrolling. When a table is too wide to fit into a certain\nlayout, or you have a large number of columns in the table, you can enable\nx-scrolling to show the table in a viewport, which can be scrolled. This\nproperty can be any CSS unit, or a number (in which case it will be treated\nas a pixel measurement).<\/p>","default":"<i>blank string - i.e. disabled<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sScrollX\": \"100%\",\n       \"bScrollCollapse\": true\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"string","parameter":"sScrollXInner","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This property can be used to force a DataTable to use more width than it\nmight otherwise do when x-scrolling is enabled. For example if y...<\/div><\/div>","purpose":"<p>This property can be used to force a DataTable to use more width than it\nmight otherwise do when x-scrolling is enabled. For example if you have a\ntable which requires to be well spaced, this parameter is useful for\n\"over-sizing\" the table, and thus forcing scrolling. This property can by\nany CSS unit, or a number (in which case it will be treated as a pixel\nmeasurement).<\/p>","default":"<i>blank string - i.e. disabled<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sScrollX\": \"100%\",\n       \"sScrollXInner\": \"110%\"\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sScrollY","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable vertical scrolling. Vertical scrolling will constrain the DataTable\nto the given height, and enable scrolling for any data which o...<\/div><\/div>","purpose":"<p>Enable vertical scrolling. Vertical scrolling will constrain the DataTable\nto the given height, and enable scrolling for any data which overflows the\ncurrent viewport. This can be used as an alternative to paging to display\na lot of data in a small area (although paging and scrolling can both be\nenabled at the same time). This property can be any CSS unit, or a number\n(in which case it will be treated as a pixel measurement).<\/p>","default":"<i>blank string - i.e. disabled<\/i>","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"sScrollY\": \"200px\",\n       \"bPaginate\": false\n     } );\n   } );","inputs":"","returns":"","group":"Features"},{"type":"string","parameter":"sServerMethod","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Set the HTTP method that is used to make the Ajax call for server-side\nprocessing or Ajax sourced data.<\/p><\/div><\/div>","purpose":"<p>Set the HTTP method that is used to make the Ajax call for server-side\nprocessing or Ajax sourced data.<\/p>","default":"GET","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/post.php\",\n       \"sServerMethod\": \"POST\"\n     } );\n   } );","inputs":"","returns":"","group":"Options"},{"type":"string","parameter":"sServerMethod","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Set the HTTP method that is used to make the Ajax call for server-side\nprocessing or Ajax sourced data.<\/p><\/div><\/div>","purpose":"<p>Set the HTTP method that is used to make the Ajax call for server-side\nprocessing or Ajax sourced data.<\/p>","default":"GET","param_type":"string","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"bServerSide\": true,\n       \"sAjaxSource\": \"scripts\/post.php\",\n       \"sServerMethod\": \"POST\"\n     } );\n   } );","inputs":"","returns":"","group":"Server-side"},{"type":"array","parameter":"aDataSort","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Allows a column's sorting to take multiple columns into account when \ndoing a sort. For example first name \/ last name columns make sense...<\/div><\/div>","purpose":"<p>Allows a column's sorting to take multiple columns into account when \ndoing a sort. For example first name \/ last name columns make sense to \ndo a multi-column sort over the two columns.<\/p>","default":"null <i>Takes the value of the column index automatically<\/i>","param_type":"array","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [\n         { \"aDataSort\": [ 0, 1 ], \"aTargets\": [ 0 ] },\n         { \"aDataSort\": [ 1, 0 ], \"aTargets\": [ 1 ] },\n         { \"aDataSort\": [ 2, 3, 4 ], \"aTargets\": [ 2 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [\n         { \"aDataSort\": [ 0, 1 ] },\n         { \"aDataSort\": [ 1, 0 ] },\n         { \"aDataSort\": [ 2, 3, 4 ] },\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"array","parameter":"asSorting","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>You can control the default sorting direction, and even alter the behaviour\nof the sort handler (i.e. only allow ascending sorting etc) u...<\/div><\/div>","purpose":"<p>You can control the default sorting direction, and even alter the behaviour\nof the sort handler (i.e. only allow ascending sorting etc) using this\nparameter.<\/p>","default":"[ 'asc', 'desc' ]","param_type":"array","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [\n         { \"asSorting\": [ \"asc\" ], \"aTargets\": [ 1 ] },\n         { \"asSorting\": [ \"desc\", \"asc\", \"asc\" ], \"aTargets\": [ 2 ] },\n         { \"asSorting\": [ \"desc\" ], \"aTargets\": [ 3 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [\n         null,\n         { \"asSorting\": [ \"asc\" ] },\n         { \"asSorting\": [ \"desc\", \"asc\", \"asc\" ] },\n         { \"asSorting\": [ \"desc\" ] },\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"boolean","parameter":"bSearchable","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable filtering on the data in this column.<\/p><\/div><\/div>","purpose":"<p>Enable or disable filtering on the data in this column.<\/p>","default":"true","param_type":"boolean","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"bSearchable\": false, \"aTargets\": [ 0 ] }\n       ] } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"bSearchable\": false },\n         null,\n         null,\n         null,\n         null\n       ] } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"boolean","parameter":"bSortable","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable sorting on this column.<\/p><\/div><\/div>","purpose":"<p>Enable or disable sorting on this column.<\/p>","default":"true","param_type":"boolean","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"bSortable\": false, \"aTargets\": [ 0 ] }\n       ] } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"bSortable\": false },\n         null,\n         null,\n         null,\n         null\n       ] } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"boolean","parameter":"bUseRendered","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p><code>Deprecated<\/code> When using fnRender() for a column, you may wish \nto use the original data (before rendering) for sorting and fil...<\/div><\/div>","purpose":"<p><code>Deprecated<\/code> When using fnRender() for a column, you may wish \nto use the original data (before rendering) for sorting and filtering \n(the default is to used the rendered data that the user can see). This \nmay be useful for dates etc.<\/p>\n\n<p>Please note that this option has now been deprecated and will be removed\nin the next version of DataTables. Please use mRender \/ mData rather than\nfnRender.<\/p>","default":"true","param_type":"boolean","code":"","inputs":"","returns":"","group":"Columns"},{"type":"boolean","parameter":"bVisible","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Enable or disable the display of this column.<\/p><\/div><\/div>","purpose":"<p>Enable or disable the display of this column.<\/p>","default":"true","param_type":"boolean","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"bVisible\": false, \"aTargets\": [ 0 ] }\n       ] } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"bVisible\": false },\n         null,\n         null,\n         null,\n         null\n       ] } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"function","parameter":"fnCreatedCell","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Developer definable function that is called whenever a cell is created (Ajax source,\netc) or processed for input (DOM source). This can b...<\/div><\/div>","purpose":"<p>Developer definable function that is called whenever a cell is created (Ajax source,\netc) or processed for input (DOM source). This can be used as a compliment to mRender\nallowing you to modify the DOM element (add background colour for example) when the\nelement is available.<\/p>","default":"","param_type":"function","code":"   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ {\n         \"aTargets\": [3],\n         \"fnCreatedCell\": function (nTd, sData, oData, iRow, iCol) {\n           if ( sData == \"1.7\" ) {\n             $(nTd).css('color', 'blue')\n           }\n         }\n       } ]\n     });\n   } );","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">element<\/i>}: The TD node that has been created<\/li><li>{<i class=\"doc_param\">*<\/i>}: The Data for the cell<\/li><li>{<i class=\"doc_param\">array<\/i>|<i class=\"doc_param\">object<\/i>}: The data for the whole row<\/li><li>{<i class=\"doc_param\">int<\/i>}: The row index for the aoData data store<\/li><li>{<i class=\"doc_param\">int<\/i>}: The column index for aoColumns<\/li><\/ol>","returns":"","group":"Columns"},{"type":"function","parameter":"fnRender","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p><code>Deprecated<\/code> Custom display function that will be called for the \ndisplay of each cell in this column.<\/p>\n\n<p>Please note tha...<\/div><\/div>","purpose":"<p><code>Deprecated<\/code> Custom display function that will be called for the \ndisplay of each cell in this column.<\/p>\n\n<p>Please note that this option has now been deprecated and will be removed\nin the next version of DataTables. Please use mRender \/ mData rather than\nfnRender.<\/p>","default":"","param_type":"function","code":"","inputs":"<ol class=\"doc_params\"><li>{<i class=\"doc_param\">object<\/i>}: Object with the following parameters:<\/li><li>{<i class=\"doc_param\">int<\/i>}: The row in aoData<\/li><li>{<i class=\"doc_param\">int<\/i>}: The column in question<\/li><li>{<i class=\"doc_param\">array<\/i>}: The data for the row in question<\/li><li>{<i class=\"doc_param\">object<\/i>}: The settings object for this DataTables instance<\/li><li>{<i class=\"doc_param\">object<\/i>}: The data property used for this column<\/li><li>{<i class=\"doc_param\">*<\/i>}: The current cell value<\/li><\/ol>","returns":"{<i class=\"doc_param\">string<\/i>}: The string you which to use in the display","group":"Columns"},{"type":"int","parameter":"iDataSort","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The column index (starting from 0!) that you wish a sort to be performed\nupon when this column is selected for sorting. This can be used ...<\/div><\/div>","purpose":"<p>The column index (starting from 0!) that you wish a sort to be performed\nupon when this column is selected for sorting. This can be used for sorting\non hidden columns for example.<\/p>","default":"-1 <i>Use automatically calculated column index<\/i>","param_type":"int","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"iDataSort\": 1, \"aTargets\": [ 0 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"iDataSort\": 1 },\n         null,\n         null,\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"mData","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This property can be used to read data from any JSON data source property,\nincluding deeply nested objects \/ properties. mData can be giv...<\/div><\/div>","purpose":"<p>This property can be used to read data from any JSON data source property,\nincluding deeply nested objects \/ properties. mData can be given in a\nnumber of different ways which effect its behaviour:\n  <ul>\n    <li>integer - treated as an array index for the data source. This is the\n      default that DataTables uses (incrementally increased for each column).<\/li>\n    <li>string - read an object property from the data source. Note that you can\n      use Javascript dotted notation to read deep properties \/ arrays from the\n      data source.<\/li>\n    <li>null - the sDefaultContent option will be used for the cell (null\n      by default, so you will need to specify the default content you want -\n      typically an empty string). This can be useful on generated columns such \n      as edit \/ delete action columns.<\/li>\n    <li>function - the function given will be executed whenever DataTables \n      needs to set or get the data for a cell in the column. The function \n      takes three parameters:\n      <ul>\n        <li>{array|object} The data source for the row<\/li>\n        <li>{string} The type call data requested - this will be 'set' when\n          setting data or 'filter', 'display', 'type', 'sort' or undefined when \n          gathering data. Note that when <i>undefined<\/i> is given for the type\n          DataTables expects to get the raw data for the object back<\/li>\n        <li>{*} Data to set when the second parameter is 'set'.<\/li>\n      <\/ul>\n      The return value from the function is not required when 'set' is the type\n      of call, but otherwise the return is what will be used for the data\n      requested.<\/li>\n   <\/ul><\/p>\n\n<p>Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change\nreflects the flexibility of this property and is consistent with the naming of\nmRender. If 'mDataProp' is given, then it will still be used by DataTables, as\nit automatically maps the old name to the new if required.<\/p>","default":"null <i>Use automatically calculated column index<\/i>","param_type":"string","code":"   \/\/ Read table data from objects\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"sAjaxSource\": \"sources\/deep.txt\",\n       \"aoColumns\": [\n         { \"mData\": \"engine\" },\n         { \"mData\": \"browser\" },\n         { \"mData\": \"platform.inner\" },\n         { \"mData\": \"platform.details.0\" },\n         { \"mData\": \"platform.details.1\" }\n       ]\n     } );\n   } );\n\n \n   \/\/ Using mData as a function to provide different information for\n   \/\/ sorting, filtering and display. In this case, currency (price)\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"aoColumnDefs\": [ {\n         \"aTargets\": [ 0 ],\n         \"mData\": function ( source, type, val ) {\n           if (type === 'set') {\n             source.price = val;\n             \/\/ Store the computed dislay and filter values for efficiency\n             source.price_display = val==\"\" ? \"\" : \"$\"+numberFormat(val);\n             source.price_filter  = val==\"\" ? \"\" : \"$\"+numberFormat(val)+\" \"+val;\n             return;\n           }\n           else if (type === 'display') {\n             return source.price_display;\n           }\n           else if (type === 'filter') {\n             return source.price_filter;\n           }\n           \/\/ 'sort', 'type' and undefined all just use the integer\n           return source.price;\n         }\n       } ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"mRender","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This property is the rendering partner to mData and it is suggested that\r\nwhen you want to manipulate data for display (including filteri...<\/div><\/div>","purpose":"<p>This property is the rendering partner to mData and it is suggested that\r\nwhen you want to manipulate data for display (including filtering, sorting etc)\r\nbut not altering the underlying data for the table, use this property. mData\r\ncan actually do everything this property can and more, but this parameter is\r\neasier to use since there is no 'set' option. Like mData this can be given\r\nin a number of different ways to effect its behaviour, with the addition of \r\nsupporting array syntax for easy outputting of arrays (including arrays of\r\nobjects):\r\n  <ul>\r\n    <li>integer - treated as an array index for the data source. This is the\r\n      default that DataTables uses (incrementally increased for each column).<\/li>\r\n    <li>string - read an object property from the data source. Note that you can\r\n      use Javascript dotted notation to read deep properties \/ arrays from the\r\n      data source and also array brackets to indicate that the data reader should\r\n      loop over the data source array. When characters are given between the array\r\n      brackets, these characters are used to join the data source array together.\r\n      For example: \"accounts[, ].name\" would result in a comma separated list with\r\n      the 'name' value from the 'accounts' array of objects.<\/li>\r\n    <li>function - the function given will be executed whenever DataTables \r\n      needs to set or get the data for a cell in the column. The function \r\n      takes three parameters:\r\n      <ul>\r\n        <li>{array|object} The data source for the row (based on mData)<\/li>\r\n        <li>{string} The type call data requested - this will be 'filter', 'display', \r\n          'type' or 'sort'.<\/li>\r\n        <li>{array|object} The full data source for the row (not based on mData)<\/li>\r\n      <\/ul>\r\n      The return value from the function is what will be used for the data\r\n      requested.<\/li>\r\n   <\/ul><\/p>","default":"null <i>Use mData<\/i>","param_type":"string","code":"   \/\/ Create a comma separated list from an array of objects\r\n   $(document).ready( function() {\r\n     var oTable = $('#example').dataTable( {\r\n       \"sAjaxSource\": \"sources\/deep.txt\",\r\n       \"aoColumns\": [\r\n         { \"mData\": \"engine\" },\r\n         { \"mData\": \"browser\" },\r\n         {\r\n           \"mData\": \"platform\",\r\n           \"mRender\": \"[, ].name\"\r\n         }\r\n       ]\r\n     } );\r\n   } );\r\n\r\n \r\n   \/\/ Use as a function to create a link from the data source\r\n   $(document).ready( function() {\r\n     var oTable = $('#example').dataTable( {\r\n       \"aoColumnDefs\": [ {\r\n         \"aTargets\": [ 0 ],\r\n         \"mData\": \"download_link\",\r\n         \"mRender\": function ( data, type, full ) {\r\n           return '<a href=\"'+data+'\">Download<\/a>';\r\n         }\r\n       } ]\r\n     } );\r\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sCellType","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Change the cell type created for the column - either TD cells or TH cells. This\ncan be useful as TH cells have semantic meaning in the ta...<\/div><\/div>","purpose":"<p>Change the cell type created for the column - either TD cells or TH cells. This\ncan be useful as TH cells have semantic meaning in the table body, allowing them\nto act as a header for a row (you may wish to add scope='row' to the TH elements).<\/p>","default":"td","param_type":"string","code":"   \/\/ Make the first column use TH cells\n   $(document).ready( function() {\n     var oTable = $('#example').dataTable( {\n       \"aoColumnDefs\": [ {\n         \"aTargets\": [ 0 ],\n         \"sCellType\": \"th\"\n       } ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sClass","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Class to give to each cell in this column.<\/p><\/div><\/div>","purpose":"<p>Class to give to each cell in this column.<\/p>","default":"<i>Empty string<\/i>","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"sClass\": \"my_class\", \"aTargets\": [ 0 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"sClass\": \"my_class\" },\n         null,\n         null,\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sContentPadding","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>When DataTables calculates the column widths to assign to each column,\nit finds the longest string in each column and then constructs a\nt...<\/div><\/div>","purpose":"<p>When DataTables calculates the column widths to assign to each column,\nit finds the longest string in each column and then constructs a\ntemporary table and reads the widths from that. The problem with this\nis that \"mmm\" is much wider then \"iiii\", but the latter is a longer \nstring - thus the calculation can go wrong (doing it properly and putting\nit into an DOM object and measuring that is horribly(!) slow). Thus as\na \"work around\" we provide this option. It will append its value to the\ntext that is found to be the longest string for the column - i.e. padding.\nGenerally you shouldn't need this, and it is not documented on the \ngeneral DataTables.net documentation<\/p>","default":"<i>Empty string<i>","param_type":"string","code":"   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         null,\n         null,\n         null,\n         {\n           \"sContentPadding\": \"mmm\"\n         }\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sDefaultContent","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Allows a default value to be given for a column's data, and will be used\nwhenever a null data source is encountered (this can be because ...<\/div><\/div>","purpose":"<p>Allows a default value to be given for a column's data, and will be used\nwhenever a null data source is encountered (this can be because mData\nis set to null, or because the data source itself is null).<\/p>","default":"null","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         {\n           \"mData\": null,\n           \"sDefaultContent\": \"Edit\",\n           \"aTargets\": [ -1 ]\n         }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         null,\n         null,\n         null,\n         {\n           \"mData\": null,\n           \"sDefaultContent\": \"Edit\"\n         }\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sName","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>This parameter is only used in DataTables' server-side processing. It can\nbe exceptionally useful to know what columns are being displaye...<\/div><\/div>","purpose":"<p>This parameter is only used in DataTables' server-side processing. It can\nbe exceptionally useful to know what columns are being displayed on the\nclient side, and to map these to database fields. When defined, the names\nalso allow DataTables to reorder information from the server if it comes\nback in an unexpected order (i.e. if you switch your columns around on the\nclient-side, your server-side code does not also need updating).<\/p>","default":"<i>Empty string<\/i>","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"sName\": \"engine\", \"aTargets\": [ 0 ] },\n         { \"sName\": \"browser\", \"aTargets\": [ 1 ] },\n         { \"sName\": \"platform\", \"aTargets\": [ 2 ] },\n         { \"sName\": \"version\", \"aTargets\": [ 3 ] },\n         { \"sName\": \"grade\", \"aTargets\": [ 4 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"sName\": \"engine\" },\n         { \"sName\": \"browser\" },\n         { \"sName\": \"platform\" },\n         { \"sName\": \"version\" },\n         { \"sName\": \"grade\" }\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sSortDataType","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Defines a data source type for the sorting which can be used to read\nreal-time information from the table (updating the internally cached...<\/div><\/div>","purpose":"<p>Defines a data source type for the sorting which can be used to read\nreal-time information from the table (updating the internally cached\nversion) prior to sorting. This allows sorting to occur on user editable\nelements such as form inputs.<\/p>","default":"std","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [\n         { \"sSortDataType\": \"dom-text\", \"aTargets\": [ 2, 3 ] },\n         { \"sType\": \"numeric\", \"aTargets\": [ 3 ] },\n         { \"sSortDataType\": \"dom-select\", \"aTargets\": [ 4 ] },\n         { \"sSortDataType\": \"dom-checkbox\", \"aTargets\": [ 5 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [\n         null,\n         null,\n         { \"sSortDataType\": \"dom-text\" },\n         { \"sSortDataType\": \"dom-text\", \"sType\": \"numeric\" },\n         { \"sSortDataType\": \"dom-select\" },\n         { \"sSortDataType\": \"dom-checkbox\" }\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sTitle","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The title of this column.<\/p><\/div><\/div>","purpose":"<p>The title of this column.<\/p>","default":"null <i>Derived from the 'TH' value for this column in the \n   original HTML table.<\/i>","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"sTitle\": \"My column title\", \"aTargets\": [ 0 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"sTitle\": \"My column title\" },\n         null,\n         null,\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sType","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>The type allows you to specify how the data for this column will be sorted.\nFour types (string, numeric, date and html (which will strip ...<\/div><\/div>","purpose":"<p>The type allows you to specify how the data for this column will be sorted.\nFour types (string, numeric, date and html (which will strip HTML tags\nbefore sorting)) are currently available. Note that only date formats\nunderstood by Javascript's Date() object will be accepted as type date. For\nexample: \"Mar 26, 2008 5:03 PM\". May take the values: 'string', 'numeric',\n'date' or 'html' (by default). Further types can be adding through\nplug-ins.<\/p>","default":"null <i>Auto-detected from raw data<\/i>","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"sType\": \"html\", \"aTargets\": [ 0 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"sType\": \"html\" },\n         null,\n         null,\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"},{"type":"string","parameter":"sWidth","purpose_short":"<div class=\"purpose\"><div class=\"purposeInner\"><p>Defining the width of the column, this parameter may take any CSS value\r\n(3em, 20px etc). DataTables applies 'smart' widths to columns wh...<\/div><\/div>","purpose":"<p>Defining the width of the column, this parameter may take any CSS value\r\n(3em, 20px etc). DataTables applies 'smart' widths to columns which have not\r\nbeen given a specific width through this interface ensuring that the table\r\nremains readable.<\/p>","default":"null <i>Automatic<\/i>","param_type":"string","code":"   \/\/ Using aoColumnDefs\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumnDefs\": [ \n         { \"sWidth\": \"20%\", \"aTargets\": [ 0 ] }\n       ]\n     } );\n   } );\n   \n \n   \/\/ Using aoColumns\n   $(document).ready( function() {\n     $('#example').dataTable( {\n       \"aoColumns\": [ \n         { \"sWidth\": \"20%\" },\n         null,\n         null,\n         null,\n         null\n       ]\n     } );\n   } );","inputs":"","returns":"","group":"Columns"}];		
		
			$(document).ready( function () {
				var anOpen = [];
				var sImageUrl = "";
				SyntaxHighlighter.config.clipboardSwf = '';
				
				var search = "";
				if ( window.location.hash !== "" ) {
					search = window.location.hash.substring( 1 );
				}
				
				var oTable = $('#reference').dataTable( {
					"aaData": aData,
					"bPaginate": false,
					"bSortClasses": false,
					"aaSorting": [[1, 'asc']],
					"aoColumns": [
						{
							"mDataProp": null,
							"sClass": "control center",
							"sDefaultContent": '<img src="'+sImageUrl+'details_open.png'+'">',
							"bSortable": false
						},
						{ "mDataProp": 'parameter' },
						{ "mDataProp": 'group', "sWidth": "160px" },
						{ "mDataProp": 'purpose_short' }
					],
					"fnInitComplete": function () {
						this.fnAdjustColumnSizing();
						$('div.dataTables_filter input').focus();
					}
				} );
				
				$('#reference tbody tr').live( 'click', function () {
					if ( $(this).hasClass( 'details' ) ) {
						return;
					}
					var nTr = this;
					var i = $.inArray( nTr, anOpen );
					var oData = oTable.fnGetData( nTr );
					
					if ( i === -1 ) {
						if( oData.purpose_short != oData.purpose ) {
							$('div.purposeInner', nTr).html( oData.purpose );
							$('div.purpose', nTr).animate({
								"height": $('div.purposeInner', nTr).height()
							});
						}
						
						$('img', this).attr( 'src', sImageUrl+"details_close.png" );
						var nDetailsRow = oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );
						nDetailsRow.className += ' '+nTr.className;
						$('div.innerDetails', nDetailsRow).slideDown();
						anOpen.push( nTr );
						SyntaxHighlighter.highlight();
					}
					else {
						$('img', this).attr( 'src', sImageUrl+"details_open.png" );
						if( oData.purpose_short != oData.purpose ) {
							$('div.purpose', nTr).animate({
								"height": 46
							});
						}
						$('div.innerDetails', $(nTr).next()[0]).slideUp( function () {
							if( oData.purpose_short != oData.purpose ) {
								$('div.purposeInner', nTr).html( oData.purpose_short );
							}
							oTable.fnClose( nTr );
							anOpen.splice( i, 1 );
						} );
					}
				} );
				
				var tableData = oTable.fnGetData();
				setTimeout( function () {
					for ( var i=0, iLen=tableData.length; i<iLen ; i++ ) {
						if ( search == tableData[i].parameter ) {
								$(oTable.fnSettings().aoData[i].nTr).click();
								$('div.dataTables_filter input').focus();
						}
					}
				}, 300 );
			} );
			
			
			function fnFormatDetails( oTable, nTr )
			{
				var oData = oTable.fnGetData( nTr );
				var sOut = 
					'<div class="innerDetails">'+
						'<div class="column_details">'+
							'<table cellpadding="5" cellspacing="0" border="0">'+
								'<tr><td valign="top" width="30%"><b>Parameter</b>:</td><td>'+oData.parameter+'</td></tr>'+
								'<tr><td valign="top"><b>Type</b>:</td><td>'+oData.param_type+'</td></tr>';
				if ( oData['default'] !== "" ) {
					sOut += 	'<tr><td valign="top"><b>Default</b>:</td><td>'+oData['default']+'</td></tr>';
				}
				if ( oData.inputs !== "" ) {
					sOut += 	'<tr><td valign="top"><b>Inputs</b>:</td><td>'+oData.inputs+'</td></tr>';
				}
				if ( oData.returns !== "" ) {
					sOut += 	'<tr><td valign="top"><b>Returns</b>:</td><td>'+oData.returns+'</td></tr>';
				}
				sOut += 
							'</table>'+
						'</div>'+
						'<div class="column_code">'+
							'<pre class="brush: js; font-size: 75%">'+oData.code+'</pre>'+
						'</div>'+
						'<div class="clear"></div>'+
					'</div>';
				return sOut;
			}
		</script>
		
<link rel="stylesheet" type="text/css" href="index.css" media="all">
</head>
<body class="grid_2_3">
		<div id="fw_container">
			
			


			<div id="fw_header">
				
				
				<div class="css_clear"></div>
								
								
				
				
				
				
			</div>
			
						
		<div id="fw_content">
			
			
			
			<div id="reference_wrapper" class="dataTables_wrapper" role="grid"><div id="reference_wrapper" class="dataTables_wrapper" role="grid"><div id="reference_wrapper" class="dataTables_wrapper" role="grid"><div id="reference_wrapper" class="dataTables_wrapper" role="grid"><table style="width: 980px;" aria-describedby="reference_info" id="reference" class="display dataTable" border="0" cellpadding="0" cellspacing="5">
				<thead>
					<tr role="row"><th aria-label="" style="width: 24px;" colspan="1" rowspan="1" role="columnheader" class="sorting_disabled control center"></th><th aria-label="Parameter: activate to sort column descending" aria-sort="ascending" style="width: 224px;" colspan="1" rowspan="1" aria-controls="reference" tabindex="0" role="columnheader" class="sorting_asc">Parameter</th><th aria-label="Config type: activate to sort column ascending" style="width: 160px;" colspan="1" rowspan="1" aria-controls="reference" tabindex="0" role="columnheader" class="sorting">Config type</th><th aria-label="Purpose: activate to sort column ascending" style="width: 491px;" colspan="1" rowspan="1" aria-controls="reference" tabindex="0" role="columnheader" class="sorting">Purpose</th></tr>
				</thead>
				
			<tbody aria-relevant="all" aria-live="polite" role="alert"></tbody></table><div id="reference_info" class="dataTables_info">Showing 1 to 126 of 126 entries</div></div></div></div></div>
			

		</div>
		</div>
		
	




</body></html>
